/**
 * 
 */
package com.codinbros.session001.model;

import processing.core.PVector;

/**
 * @author Codingbro#1
 *
 */
public class ForceField {
	/**
	 * Contains the defined kinds of falloff in effect strength
	 */
	public enum Falloff {LINEAR, LOGARITHMIC, RANDOM};
	
	private int radius;
	private PVector force;
	private Falloff falloffType;
	
	/**
	 * Returns the radius of the forcefield
	 * @return int
	 */
	public int getRadius() {
		return radius;
	}
	/**
	 * @param int, the radius of the forcefield
	 */
	public void setRadius(int radius) {
		this.radius = radius;
	}
	/**
	 *  Get the amount and direction of the force
	 * @return PVector
	 */
	public PVector getForce() {
		return force;
	}
	/**
	 *  returns the amount and direction of the force
	 * @param force PVector
	 */
	public void setForce(PVector force) {
		this.force = force;
	}
	
	/**
	 * Returns how fast the force decays in relation to distance from force.
	 * @return Falloff
	 */
	public Falloff getFalloffType() {
		return falloffType;
	}
	/**
	 * Sets how fast the force decays in relation to distance from force.
	 * @param fallofftype Falloff
	 */
	public void setFalloffType(Falloff falloffType) {
		this.falloffType = falloffType;
	} 
}
